home *** CD-ROM | disk | FTP | other *** search
- package sun.misc;
-
- public abstract class LRUCache<N, V> {
- // $FF: renamed from: oa java.lang.Object[]
- private V[] field_0 = null;
- private final int size;
-
- public LRUCache(int var1) {
- this.size = var1;
- }
-
- protected abstract V create(N var1);
-
- protected abstract boolean hasName(V var1, N var2);
-
- public static void moveToFront(Object[] var0, int var1) {
- Object var2 = var0[var1];
-
- for(int var3 = var1; var3 > 0; --var3) {
- var0[var3] = var0[var3 - 1];
- }
-
- var0[0] = var2;
- }
-
- public V forName(N var1) {
- if (this.field_0 == null) {
- this.field_0 = (V[])(new Object[this.size]);
- } else {
- for(int var2 = 0; var2 < this.field_0.length; ++var2) {
- Object var3 = this.field_0[var2];
- if (var3 != null && this.hasName(var3, var1)) {
- if (var2 > 0) {
- moveToFront(this.field_0, var2);
- }
-
- return (V)var3;
- }
- }
- }
-
- Object var4 = this.create(var1);
- this.field_0[this.field_0.length - 1] = var4;
- moveToFront(this.field_0, this.field_0.length - 1);
- return (V)var4;
- }
- }
-